This document has styles in it. You may view them with a text editor such as Tex-Edit by Tom Bender or Style (1.2.1 or later) by Marco Piovanelli, or Apple SimpleText by Tom Dowdy.
• SHAREWARE - US$10
◊ This program is distributed as Shareware: if you use it, you should pay the author. You may register:
- with the bundled Register application, or
- directly to me by sending either cash (US$ or an equivalent sum with your local currency) or an international (postal) money order; if you would rather pay using a different method, try the Register application.
◊ NOTE: Getting a note, a postcard or anything else is a lot better than getting nothing. I would like to know how far this program has gone, so remember that you can do something nice even if you do not have a couple of $ to spare.
◊ The new Disk Charmer 2.x costs $10; the old Disk Charmer 1.x has been lowered to $10. You can register both versions with $20. If you are one of the (few) registered users of Disk Charmer 1.x who paid $20, you are automatically registered to Disk Charmer 2.x.
• COMPATIBILITY ISSUES
◊ Disk Charmer can only be used under System 7 or later; if you try to start it up under older versions of the System you will get an error message.
◊ Ontrack Disk Manager Mac 4.0 is incompatible with Disk Charmer; it would hang when erasing or verifying a floppy. Use an Apple formatter, a different third party formatter or a later version of the abovementioned formatter.
◊ SpeedEmulator (as of SpeedDoubler 1.1.2) is incompatible with Disk Charmer.
◊ Do not try ejecting the disk with the Command-shift-number combination while Disk Charmer initializes or verifies the disk and the Thread Manager is installed: the Operating System hangs (not my fault).
◊ Apple Menu Options (any version) is astoundingly buggy. Wipe it off your Mac, here and now!
◊ Several users reported unexpected freezes while using Disk Charmer versions earlier than 2.2. The problem resides in the Thread Manager 2.0.1 (as well as in System 7.5). The Apple engineers who work on the Thread Manager acknowledged the bug: it should be fixed installing Thread Manager 2.1 (older Systems) or System 7.5.1 or later. In the meantime I implemented a workaround: when the Thread Manager bug occurs, no more freezes; instead, the disk will erase or verify, but you will not be able to switch applications as you might want.
◊ Apple/Connectix Mode32 1.2 is incompatible with Thread Manager. Use Mode32 7.5 or later, freely available on most online services, such as the Info-Mac archive and its mirrors:
…/cfg/mode32-75.hqx; 152K
• GENERAL INFO
◊ I will not explain the obvious here, as Disk Charmer provides Balloon Help™, and you really don’t like manuals, do you?
◊ Disk Charmer is not PowerPC native; why?
For one thing, it mostly uses the File Manager, that currently runs in 68K emulation mode, so running native would actually slow down because of the Mixed Mode switches; for another, preemptive threads are not supported in native mode, so you would lose the backgrounding feature.
◊ Disk Charmer sports background formatting, currently when the Thread Manager is present. Thread Manager is part and parcel of System 7.5 or later (make sure you upgrade to 7.5.3).
◊ Disk Charmer lets you choose whether to look for (and lock out) the bad sectors or not (locking out works only with floppies, currently). This phase is actually made of two parts: the first part runs concurrently with other applications, the second part (starting only if the disk is bad) unfortunately cannot. This is Apple’s fault (again…); it happens (sorry, this is technical jargon) that the _DIZero and _DIXZero system routines may move memory, so I cannot call them at interrupt time.
◊ You can launch Disk Charmer multiple times in a networking environment, as well as from a locked disk (CD-ROMs are welcome; by the way, if this application is included on one it would be nice to send me a complimentary CD).
◊ Disk Charmer is intelligent enough to use temporary memory when it needs to read in a disk, so you do not have to get mad setting its memory partition.
◊ You should notice that Disk Charmer allows switching among applications while operating. This happens because I use “asynchronous” reads and writes from/to the disks. Macs with I/O chips (IIfx, Quadra 800, 900, 950, the Workgroup Servers, the AVs and the PowerMacs) do not slow down while reading the entire disk.
Several users noted that during the initializing process the cursor movement was jerky, and suggested to give up the processor to allow smoother cursor control. The cursor movement is “interrupt-driven”: it does not depend on the processor sharing among applications. It happens that the Disk Driver disables interrupts frequently and for long periods while interacting with the disks. While interrupts are disabled, the processor cannot acknowledge that the cursor has been moved and react accordingly. Again, the Macs with I/O chips do not exhibit this problem, because cursor movement and disk access are handled by separate custom processors, offloading the central one. Unfortunately, even Macs with Sound Chips cannot play sounds smoothly while a disk is being formatted/verified (perhaps the AV can?).
◊ I wrote Disk Charmer because a friend of mine gave me a tape drive as a present. I put my enormous floppy collection on tapes, then I needed to re-format all of the darned floppies! I was really sick of the modal interface of Disk Charmer 1.x. I wanted a drag & drop eraser with every possible option and a nice, easy to use interface. If you think I have succeeded, send me the fee!
You may have noticed that Disk Charmer is a direct consequence of a “hardware” gift. So, if you really feel compelled, send in good hardware! Perhaps I will be inspired and write another piece of useful software ;-).
◊ Disk Charmer now supports 720K and 400K disks.
Tip: to make a 400K HFS disk, hold down the option key when the catalog is being created. Otherwise, you obtain an old-style MFS disk. MFS, the file system used on the original Macs, is not fully supported under System 7. This tip does not apply to the newest System versions: HFS is always used.
• DISCLAIMER
◊ “No warranties at all, either express or implied…” “All trademarks are held by their respective owners…” and all that stuff.
This application should do no damage, but if it does then you will be on your own. Let me know of any bugs you run into, anyway.
• VERSION HISTORY:
◊ 3.0.2 - Now properly restores the message text when a disk with open files or a CD is encountered. Compiled with the latest CodeWarrior, and linked with MoreFiles 1.4.2. Various tweaks and docs updates.
◊ 3.0.1 - Fixed dragging on a text window (would write a disk image). Other tweaks.
◊ 3.0
New features:
- Erases any disk (not just floppies).
- Support for DiskDup+ and DiskCopy disk images.
- Checks for low-level errors during read/write, and warns the user appropriately.
- Does not warn if the disk is empty and you are about to erase it.
- Asks whether you really want to read an empty disk.
- Checks whether a “System bug fix” is present, and does not show the following alert message in this case:
In order to work around a bug in the System, Disk Charmer has been forced to make a standard Macintosh disk. Use a non-defective disk or turn off the “Lock out bad sectors” option.
This bug has not been fixed as of System 7.5.3.
- Handles cmd-. and esc when erasing the disk catalog (during the long “Looking for bad sectors…” phase no harm is done to the disk, so the user is allowed to change his mind); it may not work on some System configurations.
- added a warning: if you erase a bad disk (a disk with bad sectors previously locked out) with the “Lock out bad sectors” option turned off, you lose the existing information about bad sectors.
Bugs fixed:
- Fixed the crash that used to occur on some PowerMacs (and maybe other Macs, too) when the Can switch among applications… setting was active.
- To witness this in older versions, read one disk in memory and hit Cmd-Z repetitively; you should see Disk Charmer alternating exactly between two states - the behavior was incorrect when a non-Mac format was selected in the Format popup.
- Gone is the annoying beachball -> arrow -> beachball cursor transition that used to occur when bringing DC to the front.
- The Low Density popup menu didn’t drop down if you clicked on its rightmost part, in spite of the fact that it had a drop-down symbol.
- Fixed the disk renaming bug.
- Explicitly checks for a locked disk before erasing (a locked DOS disk under a non-DOS aware Mac would escape preventive detection heretofore; the same for virgin disks).
- Free space is correctly reckoned for disks with allocation blocks larger than 512 bytes.
◊ 2.4.5 - Shows a nice beachball cursor while working. Specifies when an unformatted disk is being initialized. Updated the Internet-related menus.
◊ 2.4.4 - No more “double flickers” the Edit menu when selecting Undo. The alerts were updated in order to follow the guidelines in develop #24 (text in all caps, exclamation marks, etc. were removed). Many dialogs & alerts should behave more appropriately on multiple monitors: they appear on the parent window’s screen instead of the main screen. The alert that warns when you are going to restore a disk contains a more appropriate message. Fixed a serious bug occurring when you had a disk in memory, selected Undo, told Disk Charmer to restore a disk and hit Cancel in the warning alert; the first item in the File menu was incorrectly enabled: choosing it led to a major disruption in the messages displayed in the Disk Charmer window. No more auto-quits when Undo is enabled, so you don’t lose the disk image in memory. Other minor tweaks.
◊ 2.4.3 - Fixed the silly bug introduced in 2.4.2 that prevented the Undo feature from working when the warnings were active; thanks (one more time) to Masatsugu Nagata who promptly reported the bug.
◊ 2.4.2 - The warning alert is now movable modal; minor tweaks and fixes.
◊ 2.4.1 - Fixed the bug that prevented proper behavior without the Extended Disk Initialization Manager installed.
◊ 2.4 - Supports non-Mac file systems, and InternetConfig. Accepts drag&drop from the System 7.5 Find File window. Slightly reorganized the prefs. Other minor fixes.
◊ 2.3.1 - Moved the eject option to the main window; better handling of the Edit menu when a movable modal dialog box is visible; grays the Act on disk insertion menu item when attempting to restore a disk.
◊ 2.3 - Movable modal dialog boxes everywhere. Additional Act on disk insertion and Auto Quit options. Various code tweaks and fixes.
◊ 2.2.3 - Eject option moved to the menus; no more ejects disks on startup (I found it mostly annoying).
◊ 2.2.2 - Uses the Apple MoreFiles library. E-mail address update. Minor changes.
◊ 2.2.1 - Zoom rectangles; eject disks option more flexible, can operate via menus (Alessandro Levi Montalcini insisted a little bit on these).
◊ 2.2 - Drag Manager support. Worked around a bug in the Thread Manager 2.0.1. Fixed a subtle bug that could affect the Lock out bad sectors option. For the technically inclined, I forgot to set the ioResult field in the _Control temporary patch (I was only setting the D0 register). The bug surfaced out when installing the Apple File System Manager extension. Minor fixes; updated the docs.
◊ 2.1.4 - Ejects the disk if it does not mount when you hold down the option key (Alessandro Levi Montalcini’s suggestion); updated the docs.
◊ 2.1.3 - Little fix in the registration code.
◊ 2.1.2 - Additional disk eject option, inspired by Alessandro Levi Montalcini. Warns when the Thread Manager is installed or un-installed. Does not try to eject the disk if there are open applications/documents on it (again, thanks to Peppino). Little fix for virtual memory - I am not sure whether it was necessary, but you know: the safer, the better.
Forgot to include Luca Broglio in the credits. Luca helped with his PowerBook 160 in fixing the bug eliminated in 2.1.1.
◊ 2.1.1 - A wonderful and subtle bug lurked in the code I wrote to allow the marvelous additions in 2.1. This could cause subtle hangs while Disk Charmer was creating the disk catalog. Incredibly indeed, last night I had a nightmare in which I discovered a bug in Disk Charmer 2.1. Well, this was a premonitory dream, really.
◊ 2.1 - Lets you choose whether to lock out bad sectors or not. The first part of the bad sectors search phase can now execute concurrently with other applications, provided that you have the Thread Manager installed.
◊ 2.0.8 - Alerts if you try using a floppy disk with open applications/documents on it.
Fixed (at last!) a problem with the about box, and its incompatibility with AutoMenus II, reported by Duane W. Small and stevewho@aol.com. It was my fault, not AutoMenus’.
No more pauses between initializing and verifying (this only occurred on some Mac models and when the Thread Manager was not installed).
Slightly increased the memory partition.
The Command-period key combination is detected in the Apple-approved way; the previous method I adopted, although pretty straightforward, does not work (according to Apple) on some international keyboards.
You can abort by pressing esc or Command-period immediately after the disk is inserted.
If you insert (when trying to undo) a disk which has not the correct capacity, Disk Charmer suggests the right capacity.
Added a nifty registration form.
◊ 2.0.7 - Erasing a disk with the “Rename already formatted disks” option unchecked led to a bus or address error (found by Peppino the everpresent); stripped down a bit of code.
◊ 2.0.6 - Bug fix introducing a new bug: ever heard of this? It happens that the Disk Driver needs 2 instead of 0 in csParam only for 800K disks; HD disks need 0.
◊ 2.0.5 - Will not bore when you insert a High Sierra, ISO 9660 or Audio CD-ROM telling you that the disk is locked: the CD now mounts on the desktop (if the CD-ROM driver is installed, obviously); the message informing that a bad disk was ejected did not state that the disk was actually repaired (reported by Alan Harris); when the “Erase disk” option is active and you insert a disk formatted with a smaller than the maximum capacity, the capacity is now correctly set to the maximum (reported by Fabrizio Grandoni and Martin Josso) (for techies: set the csParam in the _Control call to 2 instead of 0, a nice but undocumented feature of the Disk Driver); keeps the undo buffer correctly instead of discarding it in one particular event; slightly increased the memory partition.
◊ 2.0.4 - Tremendous error: start up Disk Charmer 2.0.3 with System 6 and get the following: there is not enough memory…! Now the message is correct (reported by Roberto Leonardi of MacDisk Magazine).
◊ 2.0.3 - In unusual circumstances the icon in the Disk Charmer window would not gray out (tech note: it seems that you cannot mask out osEvents); alerts if the user types a disk name longer than 27 characters; minor improvements; better dialog design for disk naming, suggested by Alessandro.
◊ 2.0.2 - The icon in the Disk Charmer window appears grayed when DC is in the background; warns you if the disk is “not a Macintosh” one, such as a WC-DOS disk; interface oddities removed: gone are the useless icons in the main window; fixed an obscure bug, occurring because I did not set correctly a couple of resource attributes (I am particularly ashamed for this); now it is faster when operating in background with the Thread Manager installed and other applications tying up the processor; did not update and activate correctly the main window when the preferences dialog was open (Peppino strikes back); did not clear the disk name in the main window when a blank disk was inserted (Return of the PeppinJedi); minor internal improvements.
◊ 2.0.1 - The disk names are properly truncated: you cannot give a name longer than 27 characters to a disk (Peppino reminded me of this). The Macintosh Clipboard is copied (in memory) across every opened application. If the clipboard is large, Disk Charmer 2.0 sometimes tells you that there is not enough memory to run. This was fixed (reported by Alessandro).
◊ 2.0 - Released!
◊ 2.0b6 - Balloon help tells that verifying is non-destructive, and indicates precise Kbyte gains when you make larger disks; minor code changes; icon placement modified & changes in the application small icons suggested by Alberto Ricci.
◊ 2.0b5 - Now the user can disable the use of the Thread Manager in the preferences; it tells you whether it will read the next disk or not if the previous disk was bad (bug found by Peppino).
◊ 2.0b4 - Uses the Thread Manager if present, so that background formatting is possible; sets the cursor to a watch when necessary.
◊ 2.0b3 - Redraws the text drawn after erasure one time only.
◊ 2.0b2 - Fixed a quirk in the dialog handling code; clicking on the disk icon iconizes and de-iconizes the window (implemented because most people do not seem to notice the zoom box); redraws the text drawn after verification one time only; leaves the disk name shown after ejection; gives a verbose error if you cleverly insert a locked, unreadable disk.
◊ 2.0b1 - Redraws the text one time only if you press esc or Command-period repeatedly while reading (thanks, Paolo!) and beeps when the key is hit for feedback; instead of the generic “waiting…” message, it tells you whether it will read the next disk or not (suggested by Peppino); filtered characters, so that only numbers are accepted, in the preferences dialog.
◊ 2.0a10 - Lowered memory requirements.
◊ 2.0a9 - Stripped out a bit of code; handled async reads & writes with completion routines.
◊ 2.0a8 - Added asynchronous disk ejection; it does not seem to be different from the synchronous one.
◊ 2.0a7 - Added accent on António (Costa), remarked by Federico Cavaglià; changed the About… picture; added a couple of balloons; the disk name did not appear when verifying only (thanks, Peppino!).
◊ 2.0a6 - Checks if there is enough memory to run; split preferences, with more naming features; improved Balloon Help; improved (but it is still ugly) the “larger disks” signal.
◊ 2.0a5 - Set resource attributes better; added “larger disks” signal in the main window.
◊ 2.0a4 - One alert was not sufficiently tall to accommodate for the text.
◊ 2.0a3 - Cool about box… not for everybody! Added verbose explanations for the most common errors and better handling of uncommon disk formats.
◊ 2.0a2 - Added support for esc & Command-period in alert boxes. Various minor corrections and bug fixes.
◊ 2.0a1 - I have not recorded the nine development versions, so I start here.
• THANKS TO…
◊ Eric Anderson at Apple, who was very patient and helpful when he had to listen to my bug reports.
◊ Luciano Baesso, whose wide range of Macs allowed more extended testing.
◊ Irene Bensinger, who patiently bears the recalcitrant Igor.
◊ Luca Broglio, whose PowerBook 160 crashed, allowing to fix the bug in version 2.1. He patiently let me Macsbug-ize Disk Charmer on his Mac for a whole morning.
◊ Federico Cavaglià, for patient and impatient beta-testing and a long list of things, too long to be summarized here (he rightfully calls me “the sloppy programmer”). Furthermore, Disk Charmer 2.x exists only because of his gift.
◊ Edoardo Ciotti tested on his lowly Mac SE.
◊ Derek Currie, Jost Jourdan, Horst Prillinger, Shimpei Yamashita reported the bug which happened to be in Thread Manager.
◊ Richard Foley gave important user interface suggestions.
◊ Eric Garneau, who woke the MacUser USA people up from letargy with a letter recommending Disk Charmer in the Nov. 1994 issue.
◊ Stephen Jonke, who suggested the new options in 2.3.
◊ Roberto Leonardi found the awful bug of the wrong alert, and last but not least distributed Disk Charmer on MacDisk Magazine here in Italy.
◊ Alessandro Levi Montalcini, who gave many, many fundamental suggestions about the user interface. Disk Charmer 2.x would have been really worse without his help.
◊ Jim Luther for helping, and his great MoreFiles library.
◊ Peter N Lewis & Quinn wrote the superb InternetConfig. (And much more…)
◊ Naoari Miyaishi, Koya Matsuo and the folks at MacUser Japan, who included Disk Charmer on the MacUser Japan CD and kindly sent me a copy of the issue.
◊ Chad Magendanz helped with the DiskCopy format issues.
◊ Masatsugu Nagata, who helped a lot with beta testing and will advertise Disk Charmer on Info-Mac now that there is his name on it :-)
◊ Anna Olmo tested on her Color Classic.
◊ Ingemar Ragnemalm had the good idea of naming new disks differently depending on whether bad sectors are found or not.
◊ Giovanni Rava lent me a couple of useful (read: full of documentation) CDs.
◊ Alberto Ricci, for aesthetical suggestions regarding my icons, and beta testing.
◊ Mirko Richiero gave useful suggestions, too.
◊ Alessandro Rodella suggested the technique that led me towards the “Thread Manager bug” hypothesis. That technique also served as a workaround.
◊ Paolo Sasso tested on his PowerBook 180, discovering that Greg’s Buttons 3.0 freezed his Mac while Disk Charmer is reading from the disk.
◊ Felix Thomann reviewed Disk Charmer on the Mac Users Switzerland magazine and kindly sent me a copy of the issue.
◊ Giuseppe “Peppino” Ventura discovered the interesting (unintentional) feature allowing to make 720K Mac disks, suggested the extended disk naming options (normal vs. larger) and tested on his lowly Mac Classic, finding lots of bugs.
◊ Jonas Wallden, one of the first to exploit the Thread Manager in his applications.
◊ Don Ernesto Zucchini, who was the first ever to register Disk Charmer (1.x), back in 1990.
• ENJOY YOURSELF,
and remember that more and more shareware authors are going commercial or worse, going Windoze, because they receive almost nothing. If you don’t pay for good shareware software today, you are likely to pay much more in the future for exactly the same features, plus a nifty package, a good manual, and perhaps a copy protection scheme or a serial number; you know you don’t need the package, or the copy protection, and undoubtedly you will not want to waste your time reading manuals.
To report errors, suggestions, or whatever, send e-mail to fab@kagi.com